@echo off
chcp 65001
echo ==========================================
echo 药品数据流验证测试
echo ==========================================
echo.

echo 1. 检查后端服务状态...
curl -s http://localhost:8081/health > nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 后端服务未启动，请先启动Spring Boot服务
    goto :end
)
echo ✅ 后端服务运行正常

echo.
echo 2. 检查前端服务状态...
curl -s http://localhost:5173 > nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 前端服务未启动，请先启动Vue服务
    goto :end
)
echo ✅ 前端服务运行正常

echo.
echo 3. 测试药品API数据格式...
echo 获取药品列表数据:
curl -s -H "Content-Type: application/json" http://localhost:8081/api/drugs | jq ".[0:2]" 2>nul
if %errorlevel% neq 0 (
    echo 手动检查药品数据（JSON格式可能有问题）:
    curl -s -H "Content-Type: application/json" http://localhost:8081/api/drugs
)

echo.
echo 4. 测试库存API数据格式...
echo 获取库存列表数据:
curl -s -H "Content-Type: application/json" http://localhost:8081/api/inventories | jq ".[0:2]" 2>nul
if %errorlevel% neq 0 (
    echo 手动检查库存数据:
    curl -s -H "Content-Type: application/json" http://localhost:8081/api/inventories
)

echo.
echo 5. 测试销售记录API数据格式...
echo 获取销售记录数据:
curl -s -H "Content-Type: application/json" http://localhost:8081/api/sale-records | jq ".[0:2]" 2>nul
if %errorlevel% neq 0 (
    echo 手动检查销售记录数据:
    curl -s -H "Content-Type: application/json" http://localhost:8081/api/sale-records
)

echo.
echo 6. 检查数据完整性...
echo 验证药品数据字段是否包含null值:
curl -s -H "Content-Type: application/json" http://localhost:8081/api/drugs | findstr /C:"null"
if %errorlevel% equ 0 (
    echo ⚠️  发现null值，可能导致前端解析错误
) else (
    echo ✅ 药品数据无null值
)

echo.
echo 7. 前端数据加载测试...
echo 请在浏览器中访问: http://localhost:5173
echo 然后执行以下操作:
echo   1. 登录系统（用户名: testuser2024, 密码: 12345）
echo   2. 进入药品管理页面
echo   3. 检查控制台是否还有错误信息
echo   4. 验证药品列表是否正常显示
echo.

echo 8. 常见错误解决方案:
echo   - 如果仍有"Cannot read properties of null"错误:
echo     检查后端返回的数据是否包含null字段
echo   - 如果前端页面白屏:
echo     打开开发者工具检查具体错误信息
echo   - 如果API请求失败:
echo     检查CORS配置和API路径是否正确
echo.

:end
echo ==========================================
echo 验证完成，请根据上述结果进行相应处理
echo ==========================================
pause 